/*
 * @Author: 0x9DEFA478
 * @Date: 2021-07-26 19:00:49
 * @LastEditTime: 2022-06-27 19:34:02
 * @LastEditors: 0x9DEFA478
 * @Description: 
 * QQ:2652450237
 * ============================================================================================================================================
 * 
 * 
 * 
 *                                                                                               ************      ****************************
 *                                                                                             ************      ****************************  
 *                                                                                           ************      ****************************    
 *                                                                                         ************      ****************************      
 *                                                                                       ************      ************                        
 *                                                                                     ************      ************                          
 *                                                                                   ************      ************                            
 *                                                                                 ************      ************                              
 *                                                                               ************      ************                                
 *                                                                             ************      ************                                  
 *                                                                           ************      ************                                    
 *                                                                         ************      ************                                      
 *                                                                       ************      ************                                        
 *                                                                     ************      ************                                          
 *                                                                   ************      ************                                            
 *                                                                 ************      ************                                              
 *                                                               ************      ************                                                
 *                                                             ************      ************                                                  
 *                                                           ************      ************                                                    
 *                                                         ************      ************                                                      
 *                                                       ************      ************                                                        
 *                                                     ************      ************                                                          
 *                                                   ************      ************                                                            
 *                                                 ************      ************                                                              
 *                                               ************      ************                                                                
 *                                             ************      ************                                                                  
 *                                           ************      ************                                                                    
 *                                         ************      ************                                                                      
 *                                       ************      ************                                                                        
 *                                     ************      ************                                                                          
 *                                   ************      ************                                                                            
 *                                 ************      ************                                                                              
 *                               ************      ************                                                                                
 *                             ************      ************                                                                                  
 *                           ************      ************                                                                                    
 *                         ************      ************                                                                                      
 *       ****************************      ************                                                                                        
 *     ****************************      ************                                                                                          
 *   ****************************      ************                                                                                            
 * ****************************      ************                                                                                              
 * 
 * 
 * 
 * ============================================================================================================================================
 * 
 */
#ifndef __IP_PLL_H_
#define __IP_PLL_H_



/**
 * @brief 使能或关闭PLL1
 * @param Status 0:关闭PLL 其他:打开PLL
 * @return 无
 */
void PLL1_SetStatus(unsigned int Status);

/**
 * @brief 使能或关闭PLL2
 * @param Status 0:关闭PLL 其他:打开PLL
 * @return 无
 */
void PLL2_SetStatus(unsigned int Status);

/**
 * @brief 使能或关闭PLL3
 * @param Status 0:关闭PLL 其他:打开PLL
 * @return 无
 */
void PLL3_SetStatus(unsigned int Status);




/**
 * @brief PLL1输出控制 PLL1未开启时使用
 * @param pIsOutput p是否输出 0:不输出
 * @param qIsOutput q是否输出 0:不输出
 * @param rIsOutput r是否输出 0:不输出
 * @return 无
 */
void PLL1_SetOutput(unsigned int pIsOutput,unsigned int qIsOutput,unsigned int rIsOutput);

/**
 * @brief PLL2输出控制 PLL2未开启时使用
 * @param pIsOutput p是否输出 0:不输出
 * @param qIsOutput q是否输出 0:不输出
 * @param rIsOutput r是否输出 0:不输出
 * @return 无
 */
void PLL2_SetOutput(unsigned int pIsOutput,unsigned int qIsOutput,unsigned int rIsOutput);

/**
 * @brief PLL3输出控制 PLL3未开启时使用
 * @param pIsOutput p是否输出 0:不输出
 * @param qIsOutput q是否输出 0:不输出
 * @param rIsOutput r是否输出 0:不输出
 * @return 无
 */
void PLL3_SetOutput(unsigned int pIsOutput,unsigned int qIsOutput,unsigned int rIsOutput);




/**
 * @brief 设置倍频器小数分频
 * @param Fracn 倍频系数小数部分 0~8191
 * @return 无
 */
void PLL1_SetFracn(unsigned int Fracn);

/**
 * @brief 设置倍频器小数分频
 * @param Fracn 倍频系数小数部分 0~8191
 * @return 无
 */
void PLL2_SetFracn(unsigned int Fracn);

/**
 * @brief 设置倍频器小数分频
 * @param Fracn 倍频系数小数部分 0~8191
 * @return 无
 */
void PLL3_SetFracn(unsigned int Fracn);

/**
 * @brief 获取倍频器小数分频
 * @return 倍频系数小数部分 0~8191
 */
unsigned int PLL1_GetFracn(void);

/**
 * @brief 获取倍频器小数分频
 * @return 倍频系数小数部分 0~8191
 */
unsigned int PLL2_GetFracn(void);

/**
 * @brief 获取倍频器小数分频
 * @return 倍频系数小数部分 0~8191
 */
unsigned int PLL3_GetFracn(void);




/**
 * @brief 配置PLL 应该在PLL失能的情况下使用该方法
 *        需要提供PLL参考时钟频率 以进行频率范围配置
 * @param pllSrcFreq PLL参考频率 (pllm分频之前的)
 * @param pllm 预分频m
 * @param plln 倍频系数n
 * @param pllp 输出p的分配系数(对于PLL1 这个必须为偶数)
 * @param pllq 输出q的分配系数
 * @param pllr 输出r的分配系数
 * @return 无
 */
void PLL1_SetDIV(unsigned int pllSrcFreq,unsigned int pllm,unsigned int plln,unsigned int pllp,unsigned int pllq,unsigned int pllr);

/**
 * @brief 配置PLL 应该在PLL失能的情况下使用该方法
 *        需要提供PLL参考时钟频率 以进行频率范围配置
 * @param pllSrcFreq PLL参考频率 (pllm分频之前的)
 * @param pllm 预分频m
 * @param plln 倍频系数n
 * @param pllp 输出p的分配系数
 * @param pllq 输出q的分配系数
 * @param pllr 输出r的分配系数
 * @return 无
 */
void PLL2_SetDIV(unsigned int pllSrcFreq,unsigned int pllm,unsigned int plln,unsigned int pllp,unsigned int pllq,unsigned int pllr);

/**
 * @brief 配置PLL 应该在PLL失能的情况下使用该方法
 *        需要提供PLL参考时钟频率 以进行频率范围配置
 * @param pllSrcFreq PLL参考频率 (pllm分频之前的)
 * @param pllm 预分频m
 * @param plln 倍频系数n
 * @param pllp 输出p的分配系数
 * @param pllq 输出q的分配系数
 * @param pllr 输出r的分配系数
 * @return 无
 */
void PLL3_SetDIV(unsigned int pllSrcFreq,unsigned int pllm,unsigned int plln,unsigned int pllp,unsigned int pllq,unsigned int pllr);

/**
 * @brief 获取PLL分频
 * @param pllm 用于容纳预分频m
 * @param plln 用于容纳倍频系数n
 * @param pllp 用于容纳输出p的分频系数
 * @param pllq 用于容纳输出q的分频系数
 * @param pllr 用于容纳输出r的分频系数
 * @return 无
 */
void PLL1_GetDIV(unsigned int* pllm,unsigned int* plln,unsigned int* pllp,unsigned int* pllq,unsigned int* pllr);

/**
 * @brief 获取PLL分频
 * @param pllm 用于容纳预分频m
 * @param plln 用于容纳倍频系数n
 * @param pllp 用于容纳输出p的分频系数
 * @param pllq 用于容纳输出q的分频系数
 * @param pllr 用于容纳输出r的分频系数
 * @return 无
 */
void PLL2_GetDIV(unsigned int* pllm,unsigned int* plln,unsigned int* pllp,unsigned int* pllq,unsigned int* pllr);

/**
 * @brief 获取PLL分频
 * @param pllm 用于容纳预分频m
 * @param plln 用于容纳倍频系数n
 * @param pllp 用于容纳输出p的分频系数
 * @param pllq 用于容纳输出q的分频系数
 * @param pllr 用于容纳输出r的分频系数
 * @return 无
 */
void PLL3_GetDIV(unsigned int* pllm,unsigned int* plln,unsigned int* pllp,unsigned int* pllq,unsigned int* pllr);




#endif //__IP_PLL_H_
